package com.sayimo.maker.mall.orders.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.sayimo.framework.exception.ServiceException;
import com.sayimo.maker.mall.orders.vo.GenerateOrdersGoodsParams;
import com.sayimo.maker.mall.orders.vo.OrdersGoodsInfo;


/**
 * @Copyright (c) 2016 广东省尚一互联网有限公司
 * @Project: schoolmallapi
 * @ClassName: OrdersGoodsInfoInterfaceService
 * @Description: 订单商品Service
 * @Author:	王瑞清
 * @Date:	日期：2016年1月4日  时间：下午3:21:13
 * @Version 1.0.0
 */
public interface OrdersGoodsInfoInterfaceService {
	
	/** 
	* @Title: insertOrdersGoodsInfo 
	* @Author: 王瑞清
	* @Date:日期：2016年1月5日  时间：下午3:52:07
	* @Description: 新增订单商品信息
	* @param generateOrdersParams
	* @param ordersId 订单ID
	* @param memberId 会员ID
	* @throws ServiceException
	* @return Integer
	* @Version 1.0.0
	*/ 
	public Integer insertOrdersGoodsInfo(GenerateOrdersGoodsParams generateOrdersGoodsParams) throws ServiceException;
	
	/**
	 * 
	 * @MethodName queryOrdersGoodsInfosByOrdersId
	 * @Description 获取订单中所有商品
	 * 
	 * @author chenpy
	 * @date 2016年1月13日 下午2:29:05
	 * @param 
	 * @return List<OrdersGoodsInfo>
	 * @VERSION 1.0.0
	 */
	public List queryOrdersGoodsInfosByBatchCode(String batchCode) throws ServiceException;
	
	
	/** 
	* @Title: queryOrdersGoodsInfoById 
	* @Author: 王瑞清
	* @Date:日期：2016年1月14日  时间：上午10:45:30
	* @Description: 按ID查询
	* @param id
	* @throws ServiceException
	* @return OrdersGoodsInfo
	* @Version 1.0.0
	*/ 
	public OrdersGoodsInfo queryOrdersGoodsInfoById(Integer id) throws ServiceException;
	
	/**
	 * 
	* @Title: queryOrdersGoodsInfoByOrderId 
	* @Description: 查询订单下商品信息
	* @param orderId
	* @return
	* @throws ServiceException
	* @return List
	* @throws
	 */
	public List queryOrdersGoodsInfoByOrderId(Integer orderId) throws ServiceException;
	
	public Integer updateOrderGoodsInfo(OrdersGoodsInfo goodsInfo) throws ServiceException; 
	
	public List<OrdersGoodsInfo> queryOrdersGoodsInfoByOrdersId(Integer ordersId) throws ServiceException;
	
	
	/** 
	  * @package com.sayimo.school.mall.module.order.service
	  * @author chenpy
	  * @Title:  
	  * @Description: 判断商品是否支持发货到指定地址
	  * @param 
	  * @throws ServiceException
	  * @return Map
	  * @date 2016年5月13日
	  */ 
	public Map queryGoodsLogist(Map<String, Object> param) throws ServiceException;
	
	/**
	 * 
	* @Title: queryGoodsInfoByOrderId 
	* @Author: 田超
	* @Date:日期：2016年6月22日  时间：下午5:33:30
	* @Description: 根据订单号查询订单下商品信息
	* @param orderId
	* @return
	* @throws ServiceException
	* @return List
	* @Version 1.0.0
	 */
	public List queryGoodsInfoByOrderId(Integer orderId) throws ServiceException;
	
	/**
	 * 
	* @Title: updateGoodsStatus 
	* @Author: 田超
	* @Date:日期：2016年6月22日  时间：下午5:52:18
	* @Description: 修改商品的支付状态
	* @param paraMap
	* @throws ServiceException
	* @return void
	* @Version 1.0.0
	 */
	public void updateGoodsStatus(Map<String, Object> paraMap) throws ServiceException;
	/**
	 * 
	* @Title: queryInfoByOrderId 
	* @Author: 田超
	* @Date:日期：2016年7月4日  时间：下午4:32:41
	* @Description: 根据订单id查询相关信息
	* @param orderId
	* @return
	* @throws ServiceException
	* @return List
	* @Version 1.0.0
	 */
	public List queryInfoByOrderId(Integer orderId) throws ServiceException;


	/** 
	* @Title: insertPrivoderOrderGoodsInfo 
	* @Description: 
	* @param goodsInfo
	* @return void
	* @throws 
	*/ 
	public void insertPrivoderOrderGoodsInfo(OrdersGoodsInfo goodsInfo)throws ServiceException;
	
	/** 
	  * @package com.sayimo.school.mall.module.order.dao
	  * @author chenpy
	  * @Title:  
	  * @Description: 查询订单的总金额（没有运费 ）
	  * @param 
	  * @throws 
	  * @return BigDecimal
	  * @date 2016年7月26日
	  */ 
	public BigDecimal getOrdersTotalAmount(Map<String, Object> paramMap) throws ServiceException;
	
	/** 
	  * @package com.sayimo.school.mall.module.order.dao
	  * @author chenpy
	  * @Title:  
	  * @Description: 查询按件收费的商品的运费最大值
	  * @param 
	  * @throws 
	  * @return Map
	  * @date 2016年7月26日
	  */ 
	public Map getLogisticsGoodsId(Map<String, Object> paramMap) throws ServiceException;
}
